//
//  FIHttpAPIHelper.h
//  Magpie
//
//  Created by 100TV protocal on 12-11-14.
//
//

#import <Foundation/Foundation.h>

#define YK_COMM_PROTOCAL_VER @"1.0"		//通讯协议版本
#define YK_PLATFORM @"ipad"

//dev config
//#warning 测试环境
//#define YK_URL_APNS_REG @"http://172.18.0.16:8083/pushmessage/push";	//APNS 保存令牌接口
//#define YK_SERVER_HOST @"http://172.18.0.16:8082"						//服务器
//#define YK_APP_KEY	@"2011051797"
//#define YK_APP_SECURITY	@"cb44d90bed389a46a0077b37cda709ae"


//demo config
//#warning demo环境
//#define YK_URL_APNS_REG @"http://10.2.0.92:8083/pushmessage/push";	//APNS 保存令牌接口
//#define YK_SERVER_HOST @"http://10.2.0.92:8082"						//服务器
//#define YK_APP_KEY	@"2011060847"
//#define YK_APP_SECURITY	@"2d0debf0d3828a08751f2de0a7f82f21"

//正式线上配置
#define YK_URL_APNS_REG @"http://messageapi.vancl.com/pushmessage/push";	//APNS 保存令牌接口
#define YK_SERVER_HOST @"http://vapi.vancl.com"						//服务器
#define YK_APP_KEY	@"2011060847"
#define YK_APP_SECURITY	@"2d0debf0d3828a08751f2de0a7f82f21"

@interface FIHttpAPIHelper : NSObject

/*
 设置公用参数，每次post提交时都会附加这些参数
 */
+(void) setCommonParam:(NSString*) key value:(id) value;
/*
 获取公用参数，由[set CommonParam:** value:**]设置
 */
+(id) commonParam:(NSString*) key;

/*
 异步POST 加载url 获取 xml document object
 完成或出错后会调用[object action:xmlDoc];
 params:
 url:
 网址
 extraParams:
 附加参数，如果参数key 以'!'开头将不会post
 object:
 网址内容下载完成后调用此对象的action方法，action方法格式同下
 action:
 -(void) ****:(GDataXMLDocument*) xmlDoc;
 如果出错 xmlDoc=nil;
 
 */
+(void) startLoad:(NSString*) url extraParams:(NSDictionary*) extraParams object:(id) object action:(SEL) action ;

/*
 与startLoad相同，不过调用action时会传递extraParams
 异步POST 加载url 获取 xml document object
 
 完成或出错后会调用[object action:xmlDoc params:extraParms];
 params:
 url:
 网址
 extraParams:
 附加参数，如果参数key 以'!'开头将不会post
 object:
 网址内容下载完成后调用此对象的action方法，action方法格式同下
 action:
 -(void) ****:(GDataXMLDocument*) xmlDoc params:(NSDiction*) aa ;
 如果出错 xmlDoc=nil;
 */
+(void) startLoad2:(NSString *)url extraParams:(NSDictionary *)extraParams object:(id)object action:(SEL)action;

@end

/*
 如果字符串==nil 返回 @"" 否则返回 str
 */
extern NSString* strOrEmpty(NSString *str);
extern NSString* nowTimestamp();
extern NSString* YKMD5( NSString *str );

/*
 记录客户端信息
 */
extern void logClientInfoToYEK();
/*
 记录下单
 */
extern void logOrderInfoToYEK(NSString* orderXml);
/*
 记录下单成功
 */
extern void logOrderSuccessInfoToYEK(NSString* orderIds,float totalPrice,NSString* fullname, NSString* cellphone, NSString* address);

extern BOOL detectNetwork();
/*
 检测网络，如果没法连接internet 提示“”
 返回
 YES:网络通
 no:	网络不通
 */
extern BOOL detectNetworkAndTip();
/*
 重新请求，或取消
 */
extern void retryRequestOrCancle(id target,SEL action);

extern NSString* carrierName();

extern NSString* sourceId();
extern NSString* appVer();
extern NSString* appName();
/*
 取激活id 不是用户id
 */
extern NSString* uid();
extern void setUid(NSString* auid);

extern NSString* urlWithPath(NSString* path);



